package io;
/**
 * 对象流
 * ObjectOutputStream
 *
 */

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectOutputStream;

/**
 * 对象流是一种高级流，作用是进行对象序列化和反序列化
 */
public class OOSDemo {
    public static void main(String[] args) throws IOException {
        // 将Person对象写入文件Person.obj
        String name = "李白";
        int age = 18;
        String gender = "男";
        String[] otherInfo = {"浪漫", "诗歌","喝酒"};
        // 创建一个实例对象
        Person person = new Person(name, age, gender, otherInfo);

        // 创建一个文件输出流
        FileOutputStream fos = new FileOutputStream("./src/main/java/io/Person.obj");

        // 创建一个高级流，对象流，用于将对象写入文件  也就是序列化
        ObjectOutputStream oos = new ObjectOutputStream(fos);

        /*
        对象输出流在进行序列化时要求该对象必须实现实现Serializable接口
         */
        // 将person对象写入文件
        oos.writeObject(person);

        oos.close();
        System.out.println("写入成功");
    }
}
